package com.mit.service.design.dao;

import java.util.List;

import com.mit.common.design.dto.TemplateDTO;
import com.mit.common.exception.NoRecordUpdateException;

public interface ITemplateDAO {

	TemplateDTO createTemplate(TemplateDTO to);
	TemplateDTO retrieveTemplate(Integer id);
	TemplateDTO updateTemplate(TemplateDTO to) throws NoRecordUpdateException;
	void deleteTemplate(Integer id);
	
	/**
	 * 取回指定款号的软样或硬样记录（只有简单的资料，不含Detail子记录）
	 * @param styleId
	 * @param templateType
	 * @return
	 */
	List<TemplateDTO> retrieveTemplates(Integer styleId, String templateType);
	/**
	 * 取回指定款號的紙樣
	 * @param styleId 款式ID
	 * @param state 任务类型，close Or open，可以为空
	 * @param exludedId 排除的纸样ID，可以为空
	 * @return
	 */
	List<TemplateDTO> retrieveTemplatesByStyle(Integer styleId, String state, Integer excludedId);
	
	List<TemplateDTO> retrievePagedTempaltes(String searchCode, String searchState, Integer orgId, Integer pageNo, Integer pageSize);
	Integer retrieveTemplatesRecordCount(String searchCode, String searchState, Integer orgId);
	
}
